Stored Procedures [dbo].[sp_asi_FullAddress]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@ADDRESS_1varchar(40)40
@ADDRESS_2varchar(40)40
@ADDRESS_3varchar(40)40
@CITYvarchar(40)40
@STATE_PROVINCEvarchar(15)15
@ZIPvarchar(10)10
@COUNTRYvarchar(25)25
Permissions
TypeActionOwning Principal
GrantExecuteIMIS
SQL Script
CREATE procedure sp_asi_FullAddress  
  @ADDRESS_1 varchar(40)=null,
  @ADDRESS_2 varchar(40)=null,
  @ADDRESS_3 varchar(40)=null,
  @CITY varchar(40)=null,
  @STATE_PROVINCE varchar(15)=null,
  @ZIP varchar(10)=null,
  @COUNTRY varchar(25)=null
  as
  declare
  @formula varchar(255),
  @code int,
  @addrlen int
  BEGIN
  if datalength(@ADDRESS_1) = 0 and datalength(@ADDRESS_2) = 0 and datalength(@ADDRESS_3) = 0 and datalength(@CITY) = 0
and datalength(@STATE_PROVINCE) = 0 and datalength(@ZIP) = 0 and datalength(@COUNTRY) = 0
      begin
        select @formula=''
        select FULL_ADDRESS=@formula
        return
      end
  select @code = NULL
  select @code=ADDRESS_FORMAT from Country_Names where upper(COUNTRY)=upper(@COUNTRY)
  select @code=isnull(@code,0)
  if @code=0  
    begin  if (not exists (select * from Country_Addr_Layouts where ADDRESS_FORMAT=0))
    insert into Country_Addr_Layouts (ADDRESS_FORMAT, ADDRESS_LAYOUT, FORMULA)
  values (0, 'ADDRESS_1[N]ADDRESS_2[N]ADDRESS_3[N]CITY[C][S]STATE_PROVINCE[S]ZIP[N][U]COUNTRY',
  'ADDRESS_1[N]ADDRESS_2[N]CITY[C][S]STATE_PROVINCE[S]ZIP[N][U]COUNTRY')
    end
  begin   
  select @formula=FORMULA from Country_Addr_Layouts where ADDRESS_FORMAT=@code
  while charindex('[N]',@formula)>0
    begin
    select @formula=stuff(@formula,charindex('[N]',@formula),3,char(13))
    end
  while charindex('[S]',@formula)>0
    begin
    select @formula=stuff(@formula,charindex('[S]',@formula),3,' ')
    end
  while charindex('[C]',@formula)>0
    begin
    select @formula=stuff(@formula,charindex('[C]',@formula),3,',')
    end
  if charindex('CITY',@formula)>0
    select @formula=stuff(@formula,charindex('CITY',@formula),4,'_CITY')
  if charindex('ZIP',@formula)>0
    select @formula=stuff(@formula,charindex('ZIP',@formula),3,'_ZIP')
  if charindex('COUNTRY',@formula)>0
    select @formula=stuff(@formula,charindex('COUNTRY',@formula),7,'_COUNTRY')
  if charindex('[U]ADDRESS_1',@formula)>0
    select @formula=stuff(@formula,charindex('[U]ADDRESS_1',@formula),12,upper(@ADDRESS_1))
  if charindex('[U]ADDRESS_2',@formula)>0
    select @formula=stuff(@formula,charindex('[U]ADDRESS_2',@formula),12,upper(@ADDRESS_2))
  if charindex('[U]ADDRESS_3',@formula)>0
    select @formula=stuff(@formula,charindex('[U]ADDRESS_3',@formula),12,upper(@ADDRESS_3))
  if charindex('[U]_CITY',@formula)>0
    begin
    if charindex('[U]_CITY,',@formula)>0
      begin
      if datalength (@STATE_PROVINCE) = 0  
        select @formula=stuff(@formula,charindex('[U]_CITY,',@formula),9,'[U]_CITY')
      end
    select @formula=stuff(@formula,charindex('[U]_CITY',@formula),8,upper(@CITY) )
    end
  if charindex('[U]STATE_PROVINCE',@formula)>0
    select @formula=stuff(@formula,charindex('[U]STATE_PROVINCE',@formula),17,upper(@STATE_PROVINCE))
  if charindex('[U]_ZIP',@formula)>0
    select @formula=stuff(@formula,charindex('[U]_ZIP',@formula),7,upper(@ZIP))
  if charindex('[U]_COUNTRY',@formula)>0
    select @formula=stuff(@formula,charindex('[U]_COUNTRY',@formula),11,upper(@COUNTRY))
  if charindex('ADDRESS_1',@formula)>0
    select @formula=stuff(@formula,charindex('ADDRESS_1',@formula),9,@ADDRESS_1)
  if charindex('ADDRESS_2',@formula)>0
    select @formula=stuff(@formula,charindex('ADDRESS_2',@formula),9,@ADDRESS_2)
if charindex('ADDRESS_3',@formula)>0
    select @formula=stuff(@formula,charindex('ADDRESS_3',@formula),9,@ADDRESS_3)
  if charindex('_CITY',@formula)>0
    begin
    if charindex('_CITY,',@formula)>0
      begin
      if datalength (@STATE_PROVINCE) = 0  
        select @formula=stuff(@formula,charindex('_CITY,',@formula),6,'_CITY')
      end
    select @formula=stuff(@formula,charindex('_CITY',@formula),5,@CITY)
    end
  if charindex('STATE_PROVINCE',@formula)>0
    select @formula=stuff(@formula,charindex('STATE_PROVINCE',@formula),14,@STATE_PROVINCE)
  if charindex('_ZIP',@formula)>0
    select @formula=stuff(@formula,charindex('_ZIP',@formula),4,@ZIP)
  if charindex('_COUNTRY',@formula)>0
    select @formula=stuff(@formula,charindex('_COUNTRY',@formula),8,@COUNTRY)
  if charindex('US1',@formula)>0
    select @formula=stuff(@formula,charindex('US1',@formula),3,'')
  if charindex('US2',@formula)>0
    select @formula=stuff(@formula,charindex('US2',@formula),3,'')
  while charindex(char(13)+' ',@formula)>0      
    begin        
    select @formula=stuff(@formula,charindex(char(13)+' ',@formula),2,char(13))      
    end
  while charindex(char(13)+',',@formula)>0      
    begin        
    select @formula=stuff(@formula,charindex(char(13)+',',@formula),2,char(13))      
    end
  while charindex(char(13)+char(13),@formula)>0      
    begin        
    select @formula=stuff(@formula,charindex(char(13)+char(13),@formula),2,char(13))      
    end    
  while charindex(char(13)+' '+char(13),@formula)>0      
    begin        
    select @formula=stuff(@formula,charindex(char(13)+' '+char(13),@formula),3,char(13))      
    end
  select @addrlen=datalength (@formula)
  while substring (@formula, @addrlen, 1)=char(13)
         select @formula=substring(@formula, 1, @addrlen-1)
  select @formula  FULL_ADDRESS
  return
  end
  END

GO
GRANT EXECUTE ON  [dbo].[sp_asi_FullAddress] TO [IMIS]
GO
Uses